<?php
// +-------------------------------------------------------------------------------
// | DingZone [ A Rapid Development Framework For Dingtalk ]
// +-------------------------------------------------------------------------------
// | 文件相关服务 v1.0
// |
// | Copyright (c) 2014-2018 http://www.heimalanshi.com All rights reserved.
// | Author : Jie
// | Date : 2018-08-09
// +-------------------------------------------------------------------------------

namespace app\core\service;


class FileService {

    /**
     * 获取文件内容
     *
     * @param $filePath
     * @return bool|string
     */
    public static function getContent($filePath) {
        $filePath = ROOT_PATH . 'public' . DS . "files" . DS . $filePath;
        if (!file_exists($filePath)) {
            return false;
        }
        return file_get_contents($filePath);
    }

    /**
     * 保存文件内容
     *
     * @param $filePath
     * @param $content
     * @return bool|int
     */
    public static function saveContent($filePath, $content) {
        $filePath = ROOT_PATH . 'public' . DS . "files" . DS . $filePath;
        return file_put_contents($filePath, $content);
    }

    /**
     * 获取无后缀文件名
     *
     * @param $filename
     * @return bool|string
     */
    public static function getFilenameWithoutExt($filename) {
        $idx = strripos($filename, ".");
        if ($idx === FALSE) {
            return $filename;
        }
        return substr($filename, 0, $idx);
    }

    /**
     * 删除目录内容
     *
     * @param $dirPath
     * @param bool $delSelf
     * @return bool
     */
    public static function delDir($dirPath, $delSelf = false) {
        if (file_exists($dirPath) && $handle = opendir($dirPath)) {
            while (false !== ($item = readdir($handle))) {
                if ($item != '.' && $item != '..') {
                    if (file_exists($dirPath . DS . $item) && is_dir($dirPath . DS . $item)) {
                        // 删除子目录
                        self::delDir($dirPath . DS . $item, true);
                    } else {
                        // 删除目录下面的文件
                        if (!unlink($dirPath . DS . $item)) {
                            return false;
                        }
                    }
                }
            }
            closedir($handle);
            if ($delSelf) {
                if (!rmdir($dirPath)) {
                    return false;
                }
            }
            return true;
        } else {
            return false;
        }
    }
}